package com.wiz.aspect;

import javax.annotation.Resource;

import org.aspectj.lang.ProceedingJoinPoint;
import org.aspectj.lang.annotation.Around;
import org.aspectj.lang.annotation.Aspect;
import org.springframework.core.Ordered;
import org.springframework.stereotype.Component;

import com.wiz.message.StactionMessage;
import com.wiz.to.StationTO;

/**
 * AOP注解方法实现日志管理 利用spring AOP 切面技术记录日志 定义切面类（这个是切面类和切入点整天合在一起的),这种情况是共享切入点情况;
 * 
 * @author lanyuan 2013-11-19
 * @Email: mmm333zzz520@163.com
 * @version 1.0v
 */
@Aspect
// 该注解标示该类为切面类
@Component
public class LogAspect implements Ordered{
	@Resource
	private StactionMessage stactionMessage;
     
    @Around("com.wiz.aspect.Pointcuts.updateStation()")
    public Object around(ProceedingJoinPoint pjp) throws Throwable{
        this.printLog("已经记录下操作日志@Around 方法执行前");
        StationTO station = (StationTO) pjp.proceed();
//        stactionMessage.update(station);
        this.printLog("已经记录下操作日志@Around 方法执行后");
        
        return station;
    }
	     
	    
	    
	    
//	    @Before("com.wiz.aspect.Pointcuts.updateStation()")
//	    public void before() {
//	    	this.printLog("已经记录下操作日志@Before 方法执行前");
//	    }
//	     
//	    @After("com.wiz.aspect.Pointcuts.updateStation()") 
//	    public void after() {
//	        this.printLog("已经记录下操作日志@After 方法执行后");
//	    }
	     
	     
	    private void printLog(String str){
	        System.out.println(str);
	    }

	@Override
	public int getOrder() {
		return 1;
	}
	
	
}
